import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Intersect {


    public int[] solution(int[] nums1, int[] nums2) {
        List<Integer> res=new ArrayList<>();
        Map<Integer,Integer> tempMap=new HashMap<>();

        for (int i = 0; i < nums1.length; i++) {
            tempMap.put(nums1[i],tempMap.getOrDefault(nums1[i],0)+1);
        }

        for (int i = 0; i < nums2.length; i++) {
            if(tempMap.getOrDefault(nums2[i],0)>0){
                res.add(nums2[i]);
                tempMap.put(nums2[i],tempMap.get(nums2[i])-1);
            }
        }

        int[] arrRes=new int[res.size()];
        for (int i = 0; i < res.size(); i++) {
            arrRes[i]=res.get(i);
        }

        return arrRes;
    }
}
